/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.admanager.acmeadmanagement.plugin.acmeadmanagement.util;

import java.util.List;

import org.admanager.acmeadmanagement.plugin.acmeadmanagement.AcmeadmanagementPackage;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Attachment;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Binding;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.CBAPattern;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Component;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ComponentMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ComponentPortMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.CompositeElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Connector;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ConnectorMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.ConnectorRoleMapping;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Element;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Link;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.MappingRoot;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PComponent;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PComponentPort;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PCompositeElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConnector;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConnectorRole;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PConstraint;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PMultiplicity;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PRole;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.PSimpleElement;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Port;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Representation;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.Role;
import org.admanager.acmeadmanagement.plugin.acmeadmanagement.SimpleElement;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see org.admanager.acmeadmanagement.plugin.acmeadmanagement.AcmeadmanagementPackage
 * @generated
 */
public class AcmeadmanagementSwitch {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static AcmeadmanagementPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AcmeadmanagementSwitch() {
		if (modelPackage == null) {
			modelPackage = AcmeadmanagementPackage.eINSTANCE;
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	public Object doSwitch(EObject theEObject) {
		return doSwitch(theEObject.eClass(), theEObject);
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected Object doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch((EClass)eSuperTypes.get(0), theEObject);
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected Object doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case AcmeadmanagementPackage.PELEMENT: {
				PElement pElement = (PElement)theEObject;
				Object result = casePElement(pElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PROLE: {
				PRole pRole = (PRole)theEObject;
				Object result = casePRole(pRole);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PMULTIPLICITY: {
				PMultiplicity pMultiplicity = (PMultiplicity)theEObject;
				Object result = casePMultiplicity(pMultiplicity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCONSTRAINT: {
				PConstraint pConstraint = (PConstraint)theEObject;
				Object result = casePConstraint(pConstraint);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCOMPOSITE_ELEMENT: {
				PCompositeElement pCompositeElement = (PCompositeElement)theEObject;
				Object result = casePCompositeElement(pCompositeElement);
				if (result == null) result = casePElement(pCompositeElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PSIMPLE_ELEMENT: {
				PSimpleElement pSimpleElement = (PSimpleElement)theEObject;
				Object result = casePSimpleElement(pSimpleElement);
				if (result == null) result = casePElement(pSimpleElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCOMPONENT: {
				PComponent pComponent = (PComponent)theEObject;
				Object result = casePComponent(pComponent);
				if (result == null) result = casePCompositeElement(pComponent);
				if (result == null) result = casePElement(pComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCONNECTOR: {
				PConnector pConnector = (PConnector)theEObject;
				Object result = casePConnector(pConnector);
				if (result == null) result = casePCompositeElement(pConnector);
				if (result == null) result = casePElement(pConnector);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCOMPONENT_PORT: {
				PComponentPort pComponentPort = (PComponentPort)theEObject;
				Object result = casePComponentPort(pComponentPort);
				if (result == null) result = casePSimpleElement(pComponentPort);
				if (result == null) result = casePElement(pComponentPort);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PCONNECTOR_ROLE: {
				PConnectorRole pConnectorRole = (PConnectorRole)theEObject;
				Object result = casePConnectorRole(pConnectorRole);
				if (result == null) result = casePSimpleElement(pConnectorRole);
				if (result == null) result = casePElement(pConnectorRole);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.CBA_PATTERN: {
				CBAPattern cbaPattern = (CBAPattern)theEObject;
				Object result = caseCBAPattern(cbaPattern);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.ELEMENT: {
				Element element = (Element)theEObject;
				Object result = caseElement(element);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.COMPOSITE_ELEMENT: {
				CompositeElement compositeElement = (CompositeElement)theEObject;
				Object result = caseCompositeElement(compositeElement);
				if (result == null) result = caseElement(compositeElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.SIMPLE_ELEMENT: {
				SimpleElement simpleElement = (SimpleElement)theEObject;
				Object result = caseSimpleElement(simpleElement);
				if (result == null) result = caseElement(simpleElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.COMPONENT: {
				Component component = (Component)theEObject;
				Object result = caseComponent(component);
				if (result == null) result = caseCompositeElement(component);
				if (result == null) result = caseElement(component);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.CONNECTOR: {
				Connector connector = (Connector)theEObject;
				Object result = caseConnector(connector);
				if (result == null) result = caseCompositeElement(connector);
				if (result == null) result = caseElement(connector);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.PORT: {
				Port port = (Port)theEObject;
				Object result = casePort(port);
				if (result == null) result = caseSimpleElement(port);
				if (result == null) result = caseElement(port);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.ROLE: {
				Role role = (Role)theEObject;
				Object result = caseRole(role);
				if (result == null) result = caseSimpleElement(role);
				if (result == null) result = caseElement(role);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.SYSTEM: {
				org.admanager.acmeadmanagement.plugin.acmeadmanagement.System system = (org.admanager.acmeadmanagement.plugin.acmeadmanagement.System)theEObject;
				Object result = caseSystem(system);
				if (result == null) result = caseElement(system);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.LINK: {
				Link link = (Link)theEObject;
				Object result = caseLink(link);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.ATTACHMENT: {
				Attachment attachment = (Attachment)theEObject;
				Object result = caseAttachment(attachment);
				if (result == null) result = caseLink(attachment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.BINDING: {
				Binding binding = (Binding)theEObject;
				Object result = caseBinding(binding);
				if (result == null) result = caseLink(binding);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.REPRESENTATION: {
				Representation representation = (Representation)theEObject;
				Object result = caseRepresentation(representation);
				if (result == null) result = caseElement(representation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.MAPPING_ROOT: {
				MappingRoot mappingRoot = (MappingRoot)theEObject;
				Object result = caseMappingRoot(mappingRoot);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.COMPONENT_MAPPING: {
				ComponentMapping componentMapping = (ComponentMapping)theEObject;
				Object result = caseComponentMapping(componentMapping);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.CONNECTOR_MAPPING: {
				ConnectorMapping connectorMapping = (ConnectorMapping)theEObject;
				Object result = caseConnectorMapping(connectorMapping);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.COMPONENT_PORT_MAPPING: {
				ComponentPortMapping componentPortMapping = (ComponentPortMapping)theEObject;
				Object result = caseComponentPortMapping(componentPortMapping);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AcmeadmanagementPackage.CONNECTOR_ROLE_MAPPING: {
				ConnectorRoleMapping connectorRoleMapping = (ConnectorRoleMapping)theEObject;
				Object result = caseConnectorRoleMapping(connectorRoleMapping);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PElement</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PElement</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePElement(PElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PRole</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PRole</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePRole(PRole object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PMultiplicity</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PMultiplicity</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePMultiplicity(PMultiplicity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PConstraint</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PConstraint</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePConstraint(PConstraint object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PComposite Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PComposite Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePCompositeElement(PCompositeElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PSimple Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PSimple Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePSimpleElement(PSimpleElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PComponent</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PComponent</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePComponent(PComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PConnector</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PConnector</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePConnector(PConnector object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PComponent Port</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PComponent Port</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePComponentPort(PComponentPort object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>PConnector Role</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>PConnector Role</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePConnectorRole(PConnectorRole object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CBA Pattern</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CBA Pattern</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseCBAPattern(CBAPattern object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseElement(Element object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Composite Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Composite Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseCompositeElement(CompositeElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Simple Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Simple Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseSimpleElement(SimpleElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseComponent(Component object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Connector</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Connector</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseConnector(Connector object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Port</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object casePort(Port object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Role</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Role</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseRole(Role object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>System</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>System</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseSystem(org.admanager.acmeadmanagement.plugin.acmeadmanagement.System object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Link</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Link</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseLink(Link object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Attachment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Attachment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseAttachment(Attachment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Binding</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Binding</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseBinding(Binding object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Representation</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Representation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseRepresentation(Representation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Mapping Root</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Mapping Root</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseMappingRoot(MappingRoot object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Component Mapping</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Component Mapping</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseComponentMapping(ComponentMapping object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Connector Mapping</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Connector Mapping</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseConnectorMapping(ConnectorMapping object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Component Port Mapping</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Component Port Mapping</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseComponentPortMapping(ComponentPortMapping object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Connector Role Mapping</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Connector Role Mapping</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public Object caseConnectorRoleMapping(ConnectorRoleMapping object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	public Object defaultCase(EObject object) {
		return null;
	}

} //AcmeadmanagementSwitch
